home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 22 / Cream of the Crop 22.iso / program / asm32.zip / E32.ZIP / NEW.ASM < prev    next >
Assembly Source File  |  1996-08-26  |  1KB  |  70 lines

  1. ; NEW.ASM for E32 - Copyright (C) 1994 Douglas Herr
  2. ;  all rights reserved
  3.  
  4. ; clears the current file from the buffer
  5.  
  6. include    model.inc
  7.  
  8. public    new
  9. extrn    yesno_message:near
  10. extrn    top:near
  11. extrn    mark:near
  12.  
  13. include    dataseg.inc
  14. extrn    warning:byte        ; color attribute for warning messages
  15. extrn    dirty_bits:byte        ; status flags
  16. extrn    verify_msg:byte
  17. extrn    filesel:word
  18. extrn    filesiz:dword        ; file size
  19. extrn    buffersiz:dword        ; bytes available in file buffer
  20. extrn    filename:dword        ; ptr to filename
  21. extrn    mark_mode:byte
  22. extrn    push_mode:byte
  23. extrn    file_row:dword
  24. extrn    display_mode:byte
  25. @curseg    ends
  26.  
  27. include    codeseg.inc
  28. new    proc    near
  29.     test    dirty_bits,10000000b
  30.                 ; has the file has been changed?
  31.     jz    short no_prompt
  32.     or    dirty_bits,00010000b    ; update FKey display
  33.     mov    ah,warning
  34.     mov    esi,offset verify_msg
  35.     call    yesno_message
  36.     cmp    al,'N'
  37.     je    short exit
  38.  
  39. no_prompt:
  40.     xor    eax,eax
  41.     mov    display_mode,al
  42.     mov    push_mode,al
  43.     mov    ebx,filename        ; get ptr to filename
  44.     mov    [ebx],al
  45.     mov    filesiz,eax
  46.     and    dirty_bits,00111111b
  47.     cmp    mark_mode,al
  48.     je    short mark_off
  49.     call    mark
  50.  
  51. mark_off:
  52.     mov    file_row,1
  53.     or    dirty_bits,00100000b    ; flag top line refresh
  54.  
  55. ; re-size file buffer
  56.     mov    ecx,1024
  57.     mov    buffersiz,ecx
  58.     mov    bx,filesel
  59.     sys    ResMem32
  60.     call    top
  61.     mov    al,'Y'
  62. exit:
  63.     clc
  64.     ret
  65.  
  66. new    endp
  67.  
  68. @curseg    ends
  69.     end
  70.